package br.uece.laconi.tac;

import java.util.ArrayList;

import se.sics.tac.aw.AgentImpl;
import se.sics.tac.aw.Bid;
import se.sics.tac.aw.Quote;
import se.sics.tac.aw.TACAgent;
import se.sics.tac.aw.Transaction;
import br.uece.laconi.tac.adapt.AdaptAllocation;
import br.uece.laconi.tac.adapt.AdaptBehavior;
import br.uece.laconi.tac.strategy.EntertainmentStrategy;
import br.uece.laconi.tac.strategy.FlightStrategy;
import br.uece.laconi.tac.strategy.HotelStrategy;

public abstract class Agent extends AgentImpl {

	public AgentSensor sensor = null;

	public FlightStrategy fs = null;
	public HotelStrategy hs = null;
	public EntertainmentStrategy es = null;
	
	public AdaptBehavior adapter = null;
	public Alocador alocador = null;
	public ArrayList<Negociador> negociador = null;
	
	public BaseDeConhecimento base = null;
	
	public AgentEffector effector = null;


	public TACAgent getTACAgent() {
		return agent;
	}
	
	@Override
	public void auctionClosed(int auction) {
		sensor.auctionClosed(auction);
	}
	
	@Override
	public void transaction(Transaction transaction) {
		sensor.transaction(transaction);
	}

	@Override
	public void bidError(Bid bid, int error) {
		sensor.bidError(bid, error);
	}

	@Override
	public void bidRejected(Bid bid) {
		sensor.bidRejected(bid);
	}

	@Override
	public void bidUpdated(Bid bid) {
		sensor.bidUpdated(bid);
	}

	@Override
	public void gameStarted() {
		sensor.gameStarted();
	}

	@Override
	public void gameStopped() {
		sensor.gameStopped();
	}

	public void quoteUpdated(Quote quote) {
		sensor.quoteUpdated(quote);
	}

	public void quoteUpdated(int auctionCategory) {
		sensor.quoteUpdated(auctionCategory);
	}
}
